Page({
  data: {
    userInfo: {
      avatar: '', // 头像
      nickName: '', // 昵称
    },
  },
  onLoad() {
    this.setData({
      userInfo: wx.getStorageSync('userInfo'),
    })
  },
  // 1. 选择昵称
  onSelectNickName(e) {
    // console.log(e.detail.value)
    // 2. 上传昵称
    this.uploadNickName(e.detail.value)
  },
  // 2. 上传昵称
  async uploadNickName(nickName) {
    const { code } = await wx.http.put('/userInfo', { nickName })
    if (code !== 10000) return wx.utils.toast('修改昵称失败~')
    // 更新数据
    // 注意点: 如何更新一个对象中的某一个属性
    this.setData({
      'userInfo.nickName': nickName,
    })
  },
  // 3. 选择图片文件
  onSelectAvatar(e) {
    console.log(e.detail.avatarUrl)
    this.uploadAvatar(e.detail.avatarUrl)
  },
  // 4. 上传图片文件
  async uploadAvatar(avatarUrl) {
    const res = await wx.http.upload('/upload', {
      name: 'file', // 文件的 key
      filePath: avatarUrl, // 文件的 value
      formData: {
        type: 'avatar',
      }, // HTTP 请求中其他额外的 form data
    })
    console.log(res)
    // 更新数据
    // 注意点: 如何更新一个对象中的某一个属性
    this.setData({
      'userInfo.avatar': res.data.url,
    })
  },
})
